1. Field of the Invention
The invention relates to computer systems in general and specifically to computer-based knowledge systems and the reflective examination of knowledge information hierarchies.
2. Description of the Related Art
Computer knowledge acquisition systems attempt to make computers an “expert” in some area by drawing knowledge from experts, encoding this knowledge for use in a computer system, and providing software programs that use this knowledge to develop solutions. The current state of the art for these programs is to have the subject matter expert working alone or with the help of a knowledge system engineer who may enter strategic knowledge information in the form of language statements or knowledge hierarchies. Several strategies and techniques exist for the entry of knowledge information. One approach utilizes a task-method-knowledge (“TMK”) hierarchy that encodes problem-solving strategies in a hierarchy representing strategies developed by experts for specific problems.
TMK hierarchies are conventionally defined either as a set of textual language statements similar to a programming language such as LISP, COBOL, ALGOL, PROLOG; or they are entered into an interactive user interface and stored in a form internal to the visual entry knowledge system. In the past, a subject matter expert used a knowledge engineer to enter the knowledge. This required that the knowledge engineer work with the subject matter expert to learn the subject matter to a substantial degree, then transcribe the subject matter knowledge into a computer for processing. The success of this process is a function of the subject matter expert's ability to have the knowledge engineer understand the subject matter, and the knowledge engineer's ability to accurately translate the knowledge into the computer system. Recent developments include systems that allow the subject matter expert to enter the knowledge directly, without the use of a knowledge engineer. These systems use an interactive program into which the subject matter expert types knowledge specifications in response to prompts or training in using the software. In the example of a TMK system, the subject matter expert may be prompted or allowed to enter tasks and methods, and to specify the relationships between them, using customary computer interface techniques: mouse movements, keyboard entry, import from other data, etc. In this way, the subject matter expert enters the entire hierarchy representing the knowledge, and then using facilities of the software system, runs the knowledge hierarchy to solution. By eliminating the knowledge engineer from the process, the hierarchy can be entered and processed completely by the subject matter expert, with a resulting increase in productivity.
Subject matter experts are typically neither programmers nor knowledge engineers, however, they generally rely on the software system to accurately capture the knowledge as entered. Once entered, however, the subject matter expert has no way to decide if the entered representation is optimal or even accurate. Therefore, system relies upon skill of the knowledge engineer who entered the knowledge into the system for an efficient and accurate result representation. Generally speaking, in this process, the knowledge engineer would manually review a hierarchy and identify one or more errors or inefficiencies in the following areas of the hierarchy: First, inaccurate hierarchy structure, such as conflicting branches, branches which could not be entered, and/or branches which once entered could not be exited; Second, inefficient hierarchy structure, such as redundant, inefficient, or unnecessary branches; Third, incorrect logic, such as incorrect calculations of results or incorrect assignment of variables; Fourth, incorrect use of data, such as data type mismatch, incorrect connections between, or inefficient or incorrect use of data variables; and/or Fifth, applications, such as specific errors and inefficiencies, incorrect or inefficient use of specific heuristic calculations, or misuse of substance or connection types. Therefore, by removing the knowledge engineer from the process, the ability to inspect and critique a knowledge hierarchy is lost in current systems.
Therefore, what is needed is a method for the analysis of a subject matter expert-entered hierarchy by the software system into which the subject matter expert enters the knowledge. The process needed may be appropriately termed “reflection”, where a software system “reflects” on its own processing and makes decisions about the accuracy and efficiency thereof, and offers suggestions for corrections and improvements to the software methodology based upon the reflections.